package com.wzkun.aicraft.core.parser;

import com.wzkun.aicraft.exception.BusinessException;
import com.wzkun.aicraft.exception.ErrorCode;
import com.wzkun.aicraft.model.enums.CodeGenTypeEnum;

/**
 * 代码解析执行器
 * 根据代码生成类型执行相应的解析策略
 *
 * @author wzk
 * @since 2025/11/13
 */
public class CodeParserExecutor {

    private static final HtmlCodeParser htmlCodeParser = new HtmlCodeParser();

    private static final MultiFileCodeParser multiFileCodeParser = new MultiFileCodeParser();

    /**
     * 执行解析器
     * @param codeContent 代码内容
     * @param codeGenerateType 代码生成类型
     * @return 解析结果
     */
    public static Object executeParser(String codeContent, CodeGenTypeEnum codeGenerateType) {
        return switch (codeGenerateType) {
            case HTML -> htmlCodeParser.parseCode(codeContent);
            case MULTI_FILE -> multiFileCodeParser.parseCode(codeContent);
            default -> throw new BusinessException(ErrorCode.SYSTEM_ERROR,"不支持的代码生成类型");
        };
    }
}
